home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 28
/
Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso
/
Aminet
/
game
/
board
/
Crafty-15.19.lha
/
crafty-15.19
/
src
/
data.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-09-13
|
41KB
|
882 lines
#include <stdio.h>
#include <stdlib.h>
#include "chess.h"
#include "evaluate.h"
FILE *input_stream;
FILE *book_file;
FILE *books_file;
FILE *history_file;
FILE *log_file;
FILE *auto_file;
FILE *book_lrn_file;
FILE *position_file;
FILE *position_lrn_file;
char whisper_text[512];
int whisper_value;
int whisper_depth;
int total_moves;
int last_mate_score;
int time_abort;
int auto232;
int auto232_delay;
signed char abort_search;
char log_filename[64];
char history_filename[64];
int number_of_solutions;
int solutions[10];
int solution_type;
char cmd_buffer[512];
char *args[32];
char buffer[512];
int nargs;
int iteration_depth;
int previous_search_value;
int search_failed_high;
int search_failed_low;
int root_alpha;
int root_beta;
int root_value;
int root_wtm;
int root_move;
int root_total_white_pieces;
int root_total_white_pawns;
int root_total_black_pieces;
int root_total_black_pawns;
int cpu_percent;
int easy_move;
int absolute_time_limit;
int search_time_limit;
int next_time_check;
int burp;
int ponder_move;
int made_predicted_move;
int ponder_moves[220];
int num_ponder_moves;
unsigned int opponent_start_time, opponent_end_time;
unsigned int program_start_time, program_end_time;
unsigned int start_time, end_time;
unsigned int elapsed_start, elapsed_end;
unsigned int evaluations;
int book_move;
int book_learn_eval[LEARN_INTERVAL];
int book_learn_depth[LEARN_INTERVAL];
int hash_maska;
int hash_maskb;
unsigned int pawn_hash_mask;
HASH_ENTRY *trans_ref_wa;
HASH_ENTRY *trans_ref_wb;
HASH_ENTRY *trans_ref_ba;
HASH_ENTRY *trans_ref_bb;
PAWN_HASH_ENTRY *pawn_hash_table;
int history_w[4096], history_b[4096];
signed char searched_this_root_move[256];
unsigned int root_nodes[256];
PATH pv[MAXPLY];
PATH last_pv;
int last_value;
int pawn_advance[8];
int pawn_value_b[64];
int knight_value_b[64];
int bishop_value_b[64];
int rook_value_b[64];
int queen_value_b[64];
int king_value_b[64];
signed char directions[64][64];
BITBOARD w_pawn_attacks[64];
BITBOARD b_pawn_attacks[64];
BITBOARD knight_attacks[64];
BITBOARD bishop_attacks[64];
#if defined(COMPACT_ATTACKS)
/* Stuff these into a structure to make the addressing slightly cheaper */
struct at at;
BITBOARD diag_attack_bitboards[NDIAG_ATTACKS];
BITBOARD anti_diag_attack_bitboards[NDIAG_ATTACKS];
DIAG_INFO diag_info[64];
#else
BITBOARD bishop_attacks_rl45[64][256];
BITBOARD bishop_attacks_rr45[64][256];
int bishop_mobility_rl45[64][256];
int bishop_mobility_rr45[64][256];
#endif
BITBOARD rook_attacks[64];
#if !defined(COMPACT_ATTACKS)
BITBOARD rook_attacks_r0[64][256];
BITBOARD rook_attacks_rl90[64][256];
int rook_mobility_r0[64][256];
int rook_mobility_rl90[64][256];
#endif
POSITION search;
POSITION display;
BITBOARD queen_attacks[64];
BITBOARD king_attacks[64];
BITBOARD king_attacks_1[64];
BITBOARD king_attacks_2[64];
BITBOARD obstructed[64][64];
unsigned int w_pawn_random32[64];
unsigned int b_pawn_random32[64];
BITBOARD w_pawn_random[64];
BITBOARD b_pawn_random[64];
BITBOARD w_knight_random[64];
BITBOARD b_knight_random[64];
BITBOARD w_bishop_random[64];
BITBOARD b_bishop_random[64];
BITBOARD w_rook_random[64];
BITBOARD b_rook_random[64];
BITBOARD w_queen_random[64];
BITBOARD b_queen_random[64];
BITBOARD w_king_random[64];
BITBOARD b_king_random[64];
BITBOARD enpassant_random[65];
BITBOARD castle_random_w[2];
BITBOARD castle_random_b[2];
BITBOARD wtm_random[2];
BITBOARD endgame_random_w;
BITBOARD endgame_random_b;
BITBOARD w_rooks_random;
BITBOARD b_rooks_random;
BITBOARD threat_flag;
BITBOARD clear_mask[65];
BITBOARD clear_mask_rl45[65];
BITBOARD clear_mask_rr45[65];
BITBOARD clear_mask_rl90[65];
BITBOARD set_mask[65];
BITBOARD set_mask_rl45[65];
BITBOARD set_mask_rr45[65];
BITBOARD set_mask_rl90[65];
BITBOARD file_mask[8];
BITBOARD rank_mask[8];
BITBOARD mask_not_rank8;
BITBOARD mask_not_rank1;
BITBOARD right_side_mask[8];
BITBOARD left_side_mask[8];
BITBOARD right_side_empty_mask[8];
BITBOARD left_side_empty_mask[8];
BITBOARD right_half_mask, left_half_mask;
BITBOARD mask_abs7_w, mask_abs7_b;
BITBOARD pawns_cramp_black;
BITBOARD pawns_cramp_white;
BITBOARD mask_advance_2_w;
BITBOARD mask_advance_2_b;
BITBOARD mask_left_edge;
BITBOARD mask_right_edge;
BITBOARD mask_corner_squares;
BITBOARD promote_mask_w;
BITBOARD promote_mask_b;
BITBOARD mask_G2G3;
BITBOARD mask_B2B3;
BITBOARD mask_G6G7;
BITBOARD mask_B6B7;
BITBOARD mask_A7H7;
BITBOARD mask_A2H2;
BITBOARD center;
BITBOARD stonewall_white;
BITBOARD stonewall_black;
BITBOARD mask_kr_trapped_w[3];
BITBOARD mask_qr_trapped_w[3];
BITBOARD mask_kr_trapped_b[3];
BITBOARD mask_qr_trapped_b[3];
BITBOARD good_bishop_kw;
BITBOARD good_bishop_qw;
BITBOARD good_bishop_kb;
BITBOARD good_bishop_qb;
BITBOARD light_squares;
BITBOARD dark_squares;
BITBOARD not_rook_pawns;
BITBOARD plus1dir[65];
BITBOARD plus7dir[65];
BITBOARD plus8dir[65];
BITBOARD plus9dir[65];
BITBOARD minus1dir[65];
BITBOARD minus7dir[65];
BITBOARD minus8dir[65];
BITBOARD minus9dir[65];
BITBOARD mask_eptest[64];
# if !defined(CRAY1)
BITBOARD mask_1;
BITBOARD mask_2;
BITBOARD mask_3;
BITBOARD mask_4;
BITBOARD mask_8;
BITBOARD mask_16;
BITBOARD mask_32;
BITBOARD mask_72;
BITBOARD mask_80;
BITBOARD mask_85;
BITBOARD mask_96;
BITBOARD mask_107;
BITBOARD mask_108;
BITBOARD mask_112;
BITBOARD mask_118;
BITBOARD mask_120;
BITBOARD mask_121;
BITBOARD mask_127;
# endif
BITBOARD mask_clear_entry;
# if !defined(CRAY1)
unsigned char first_ones[65536];
unsigned char last_ones[65536];
# endif
unsigned char first_ones_8bit[256];
unsigned char last_ones_8bit[256];
unsigned char connected_passed[256];
BITBOARD mask_kingside_attack_w1;
BITBOARD mask_kingside_attack_w2;
BITBOARD mask_kingside_attack_b1;
BITBOARD mask_kingside_attack_b2;
BITBOARD mask_queenside_attack_w1;
BITBOARD mask_queenside_attack_w2;
BITBOARD mask_queenside_attack_b1;
BITBOARD mask_queenside_attack_b2;
BITBOARD mask_pawn_protected_b[64];
BITBOARD mask_pawn_protected_w[64];
BITBOARD mask_pawn_isolated[64];
BITBOARD mask_pawn_passed_w[6